# -*- coding: utf-8 -*-
# appengine imports
from google.appengine.ext import db
from google.appengine.api import memcache
from google.appengine.ext.webapp import template

#python imports
import cgi, sys, random, hashlib, urllib, math, os
#from datetime import datetime

#local imports
from baserequesthandler import BesucherHandler
#from benutzer.models.schueler import Schueler, Besucher
from quizz.models import QAufgabe

#todo: memcache irgendwie einbauen?????

class Handler(BesucherHandler):
  def get(self,welche_aufgaben_drucken):
    if welche_aufgaben_drucken in ['bearbeitet','richtig']:
      besucher = self.get_besucher()
      history = besucher.get_history('POST')
      # ein Besucher, der noch nix bearbeitet hat und gerade 'frisch angelegt wurde' hat keine history:
      if len(history) == 0:
        self.redirect('/')
        return
      bearbeitet = list(set([h[1] for h in history ]))
      richtig = besucher.get_richtig_gepostet()
      aliste = []
      if welche_aufgaben_drucken == 'bearbeitet':
        aliste = bearbeitet
      else:
        aliste = richtig

      Aufgaben = []
      for akey in aliste:
        qaufg = QAufgabe.gql('where akey = :1', akey).get()
        qaufg.Antworten = qaufg.get_antworten(format='list')
        qaufg.Bearbeitet = int(qaufg.bearbeitet)
        qaufg.Richtig_Bearbeitet = int(qaufg.richtig_bearbeitet)
        qaufg.Hinweis = qaufg.hinweis()
        Aufgaben.append(qaufg)
      #self.response.headers['Content-Type']='text/plain;charset=UTF-8'
      directory = os.path.dirname(__file__).replace('/benutzer/handlers','')
      path = os.path.join(directory, os.path.join('templates', 'benutzer/drucken.html'))
      #self.response.out.write(directory)
      #return
      html = template.render(path, {'Aufgaben':Aufgaben})
      self.response.out.write(html)
      #for qaufg in rAufg:         
      #  html_code = template.render(path, {'aufg':qaufg, 'bearbeitet': int(qaufg.bearbeitet), 'richtig_bearbeitet': int(qaufg.richtig_bearbeitet), 'hinweis':qaufg.hinweis() })
      #  self.response.out.write(html_code)
      return
    else: # alles andere ist nicht erlaubt
      self.redirect('/')
      return
